The rapid evolution in hardware and software technology is making it more the norm rather than the exception that a user will have multiple computing devices with which to interact with data and programs. For example, it is commonplace for a user to have a desktop computer, and one or more additional computing devices such as a portable computer and a mobile device (e.g., cell phone) with which to access network services.
A problem with having multiple devices, however, is maintaining an equivalent set of client information on all the user devices, especially when the user operates such devices between online and offline modes. For example, a user may conduct initial activity via a desktop computer and then leave on a business trip with a laptop computer that lacks the desired updated information and settings generated on the desktop computer. Moreover, while on the business trip, if the user performs data operations offline using the portable computer, these operations may not be propagated to the user's desktop computer.
While not such a pressing problem in the home environment, maintaining equivalency of multiple clients in business environments can pose a complex and costly problem when the user devices are brought online and perform data operations against data sources such as line-of-business (LOB). For example, one conventional problem with data operations against a data source includes the multiple delivery of operations from the different user clients to the data source thereby causing duplicate and lost requests. To minimize this problem data sources should provide reliable messaging support. Another problem with conventional implementations is the need to rely on locking functionality to prevent multiple clients from accessing the same data entity, and distributed transaction support from the data sources. Yet another existing problem is the potential to perform operations on stale data where updates/deletes are based on an older image of data than the data exists in the data sources. However, existing data systems lack support and control for addressing at least these problems in multiple client data access scenarios.